Good game, but unfortunately I was able to get stuck on an edge. Player's upper left edge caught on wall's lower right corner. Perhaps the problem is in the collision checking: https://github.com/phoboslab/underrun/blob/master/source/ent...
If there's a collision in either X or Z, both should be rolled back to their last positions. I think there is possibly an edge case hidden in there otherwise.
P.S. Nice code by the way.