Kill percentage flag used for -nomonsters and respawning

In the Doom source, the MF_COUNTKILL flag (used to calculate how many monsters are in a level, for the kill percentage) is also used to determine which monsters are hidden with the -nomonsters command line argument, and which monsters will respawn on Nightmare!. This has some unexpected consequences.

Lost souls
The lost soul monster had this flag removed for all versions of engine after Doom II was released. Likely, it was done to prevent the new pain elemental monster added in Doom II from overinflating the kill percentage.

As a consequence to this, lost souls do not respawn.

However, they are hidden with -nomonsters, due to a specific hack in P_MOBJ.C : // don't spawn any monsters if -nomonsters if (nomonsters       && ( i == MT_SKULL || (mobjinfo[i].flags & MF_COUNTKILL)) ) {       return; }

Commander Keen
The Commander Keen object, which only appears in vanilla Doom on MAP32: Grosse (Doom II), is tagged with MF_COUNTKILL. Deathmatching with the -nomonsters causes Keen not to appear. Because killing the four Keens is needed to expose the end to the level (via Tag 666), the level cannot be exited when using -nomonsters, unless one is also using the -timer command.

Dead Simple
MAP07: Dead Simple (Doom II) has monsters that must be killed to access the exit, but has another exit that is only reachable via a deathmatch spawnspot, so can be exited. In addition, the normal exit can be accessed by rocket jumping.