Original bug report from https://forum.sencha.com/forum/showthread.php?t=260445 (marked fixed, but still broken in Touch 2.2.1).

Ext.Map's maprender event always returns null as the 2nd argument because a direct reference to the private map variable is used.

Ext.Map#onTilesLoaded needs to use a proper getter instead:
Ext.define('Ext.bugfix.Map', {
    override: 'Ext.Map',

    onTilesLoaded: function() {
        // this.fireEvent('maprender', this, this.map); // wrong
        this.fireEvent('maprender', this, this.getMap()); // right
Tested on Touch 2.2.1.