The ground marker minimap overlay gets a local point for the tile to mark from fromWorld() and passes it to localToMinimap() - but because the adjustment of -1, when the player position is subtracted from it to compute the minimap location it causes the computed position to be off by a full tile. Additionally, drawRect() width and height is inclusive so the width/height must be subtracted by 1