Rework 2D coordinate handling part 6
Continuing the 2D coordinate rework from !805 (merged)
This series tries to clean up some of the loose ends from previous rounds by adding new helper functions. helpers for surface coordinate arithmetic are still conspicuously absent and will come later.