             col.push(inverse ? '1' : '0');
           }
         }
-        mapData += col.join(',')+"\n";
+        if (this.tilingStart == FlxObject.FLOOR) 
+        {
+          mapData = col.join(',')+"\n" + mapData;
+        }
+        else
+        {
+          mapData += col.join(',')+"\n";
+        }
       };
       setupEmptyRow = function():void
       {

    public const SIDE_TO_SIDE:uint = 1;
    
    public var tilingMode:uint;
    
    public var hasCeiling:Boolean;
    public var hasFloor:Boolean;

          col = [];
        }
      };
      for (r = rStart; 
           (rStart < rEnd && r < rEnd) || (rStart > rEnd && r >= rEnd); 
           (rEnd != 0) ? r++ : r--) // For each row. // TODO - Optimize throughout. 
      {
        if (r == rStart && this.tilingStart == FlxObject.FLOOR && this.hasFloor)
        {
          setupFloorRow.call(this);
          rSpacing = this.minLedgeSpacing.y;
        }
        else 
        {
