Thanks Ryan, my bad! I've now added the ability for baddies to remember where they last saw you so that if you become obscured or it's too dark for them to see you anymore, they'll run to where they last spotted you to check. It's a bit more natural that way, thanks for spotting that!
As for the downward angle thing when shooting at you on the ground, still trying to get that one right...

I've been using obj.look.setLookAt(playerID); and making sure obj.look.effectWeapons is true, so the engine has been calculating the angle for itself.
When the player starts crawling, I decrease the player's Y size so that enemies will aim downward, however bullets seem to fly just over the player's head. If I make it any lower, enemies don't seem to notice the player even when he's out in the open. I can't just add an offset when firing because the look function overrides it anyway, and when I set obj.look.effectWeapons to false and calculate the angle myself using trigonometry it ignores my angle and does the dim3 calculated angle anyway. I'll keep fiddling - it's probably something I'm doing wrong.
Anyway I'll update the link once I've patched in fixes to those two things and started a new map

thanks again for playing around with it. This is the critical part of developing it because once the physics and logic are solid it's just content and polish