Alright, @sasik on the HaxeFlixel Discord resolved this. I was storing my tiles in MapData[x][y], whereas FlxTilemap.loadFrom2dArray() expects MapData[y][x]. Had I used non-square maps I would've probably caught that earlier! He also gave me great tips on using 1D vectors instead to gain performance.

:D