Also I think levels that you "walk through" on the map are not ideal. Fine to have non-blocking levels that are detached from side-walls - this is standard practice. But probably should avoid non blocking levels in a tight space. You have been considerate enough to leave the map wide open apart from the very first level, which probably suits the random nature of the levels.
I changed it now so that the first tunnel level is blocking, so that people who will download it from now on will not just walk through and miss them. I made the map really open because some levels aren't possible, and I don't want a blocking impossible level (let's pray for level 5 now). The first level had simple and relaxed parameters and I haven't seen an impossible level generated for that.
I had a couple of levels (I think ice ones) which caused a crash (which required a reboot on my 486), and there were a few impossible jumps and once case where I constantly got pushed into a pit by a moving platform at the start.
Yeah, Sometimes I get a level that somehow aren't actually compatible with keen. Can't open those levels in editors either. I have no clue what happens in those cases.
If you get pushed by a platform at the start, try to do an impossible pogo. When I got that, I got out quick enough doing that.
but it's also neat to see the code ported to C++. (I'm kinda shocked to see it work so well under DOS, though the filesize got quite big!)
I am now shocked the exe is 15 times bigger than the keen exe.

I didn't do anything to optimize either speed or size of the program. I am not sure why it's weird that it works under DOS. I used the DOS compiler you linked me 2 years ago.