This might be on the higher end side of things for a first hack, which I presume this is if you are speaking about "hexadecimal", especially if you in turn run into resource limits.
Two main approaches
I don't know how the level data works but many times enemies and spawners might be included in the level. You can try analysing level data if you can find it (there may be multiple "layers" each responsible for their own aspects), this is more in line with fiddling with a hex editor.
However most would instead try to find enemy health (same way you find your health in a cheat search -- in this case shoot the enemy with the weakest gun you can find or maybe knife if that was a thing for that one, been too long since I played it, and do searches for changed values. Whatever spawns in the enemy will also change the health and you can work backwards from there. It might also give you an idea of limits of number of enemies in a room -- if you have limited space before the next element appears in memory then that can be very hard indeed to deal with.
If the game instead uses some kind of dynamic setup (if it thinks you are wandering around with too much health and bullets then spawn some enemies sort of thing) then you might be able to tweak that as a more conventional cheat but will probably still have to go down to code level to properly understand it.
If you do end up doing level stuff then you can also take the other approach -- more zombies is one way but so is lowering the ammo count and health maximum, and that you can do with cheats and thus possibly really quickly -- whatever there is for infinite health and ammo you instead tweak that to be something like if greater than 20 set to 20 such that you only ever have 20 max ammo, or less in the magazine if that is a thing you have a cheat/memory location for, and same for health so you can only take a few hits.