BTW, currently I'm porting my code I started with the Unity 2D preview Tilemap classes. It is not as powerful or stable as your system for rectangular tilemaps, but the Vector3Int class was nice to encapsulate a grid position. I don't know why they are using 3 components, a Vector2Int would be sufficient, maybe they were planning to enhance the system to a 3D Tilemap. Such a position class would make your last code simpler and I can't think of any reason why you would need GetMouseGridX, only, and not GetMouseGridY, so GetMouseGrid could return a GridPostion or so object, with an int x and int y field. Could be even backward compatible, if you leave the GetMouseGridX/Y methods in and mark them just as deprecated.