               , data.tileset[tileIndex]?.properties)
 
               entityCallback(entityData)
+
+        if entities = layer.entities
+          for entity in entities
+            {tileIndex} = entity
+            entityData = $.extend(
+              layer: layerIndex
+              sprite: spriteLookup[tileIndex]
+              x: entity.x
+              y: entity.y
+            , data.tileset[tileIndex]?.properties
+            , entity.properties)
+
+            entityCallback(entityData)
 
     loadEntities()      
 

    return proxy

  loadByName = (name, callback, entityCallback) ->
    url = "#{BASE_URL}/data/#{name}.tilemap"

    proxy =
      draw: $.noop

      data.layers.each (layer, layerIndex) ->
        return unless layer.name.match /entities/i

        layer.tiles?.each (row, y) ->
          row.each (tileIndex, x) ->
            if spriteLookup[tileIndex]
              entityData = $.extend(
