Qué interesante presentación!

veo que vas haciendo tus pinitos con Tilengine
No te puedo ayudar con el Perl, pero sí con las colisiones, que comentas que no sabes cómo hacerlo:
Tienes la función
TLN_GetLayerTile, a la que le indicas el índice de la capa y las coordenadas x,y absolutas del mapa (no de la pantalla), y te devuelve una estructura
TLN_TileInfo con información detallada sobre el tile que hay en esa posición. Esa información es la que luego se usa para implementar las colisiones, consultando los tiles que hay alrededor del sprite según en la dirección en que te estés moviendo. Es el mecanismo que usa la demo "gorda", el
SuperMarioClone en C#.
Reconozco que la documentación de Tilengine es deficiente, la referencia de la API está completa pero falta una buena serie de tutoriales paso a paso sobre cómo hacer este tipo de cosas...

Si tienes más dudas pregúntame, y cuando esté listo el tema del Perl si quieres lo integramos en el tronco principal y te añado una referencia como colaborador.