Oh, I found out how to invert up/down - after I read the readme a second time

I don't really get your problems regarding the pseudo-shadows.
I mean, whatever way you store your enemy data, at some moment you got their final 3D space coordinates, right? Or maybe a screen coordinate plus zoom-factor, whatever.
Then you got all info you need to draw that fake shadow: X is the same, zoom-factor is the same. Y is the same, only mirrored and multiplied with some constant depending on the 3D perspective. Use some dark ellipsis as texture. And if you want real retro-style then fake semi-transparency by flickering

That's all, more or less...
Concrete formulas also depend on your internal coordinate-system, of course. Like, where's Y=0? At the screen's center or bottom or top?
Since I don't know how exactly you do your rendering (do you use any std. 3D API like Direct3D or OpenGL? Or some sprite blitting?) and how your coordinate systems look like I can't give you more detailed hints right now.
"To survive war – you gotta become war." - John Rambo