anchor.diff:          match FieldGeometries.TryGetValue field.FieldTileMap with
           | (true, geometry) -> geometry
           | (false, _) ->
  +
               let (_, tileSets, tileMap) = World.getTileMapMetadata field.FieldTileMap world
               let untraversableLayer = tileMap.Layers.["Untraversable"] :?> TmxLayer
               let untraversableHeightLayer = tileMap.Layers.["UntraversableHeight"] :?> TmxLayer
               let traversableLayer = tileMap.Layers.["Traversable"] :?> TmxLayer
               let traversableHeightLayer = tileMap.Layers.["TraversableHeight"] :?> TmxLayer
   
  -            let texCoords = Array.zeroCreate<single> (tileMap.Width * tileMap.Height * 2 * 6)
  +            let texCoords = Array.zeroCreate<Vector2> (tileMap.Width * tileMap.Height * 6)
   
               for i in 0 .. dec tileMap.Width do
                   for j in 0 .. dec tileMap.Height do
  
positive.code:                     match tileSetOpt with
                      | Some tileSet ->
                          let height = tile.Gid - tileSet.FirstGid
  
  // this is our Elm-style command type
  type Command =
  
negative.code:                         let texCoordX2 = texCoordX + 1.0f / single tileSet.Image.Width.Value
                          let texCoordY2 = texCoordY + 1.0f / single tileSet.Image.Height.Value
                          let u = t * 6
                          texCoords.[u] <- v2 texCoordX texCoordY
                          texCoords.[u+1] <- v2 texCoordX2 texCoordY
                          texCoords.[u+2] <- v2 texCoordX2 texCoordY2
                          texCoords.[u+3] <- v2 texCoordX texCoordY
                          texCoords.[u+4] <- v2 texCoordX2 texCoordY2
                          texCoords.[u+5] <- v2 texCoordX texCoordY
                      | None -> ()
  
              let positions = Array.zeroCreate<Vector3> (tileMap.Width * tileMap.Height * 6)
  
              for i in 0 .. dec tileMap.Width do
                  for j in 0 .. dec tileMap.Height do
  