Rather than doing smooth shading the right way (doing raytracing per vertex) I decided to cheat some more by simply interpolating between faces. It's not perfect but it fools the eye. The only problem right now is that smooth lighting takes the fps down to around 25 whereas I can easily get over 50 with flat shading.
I must admit that the way obstructions are being calculated right now is about as effective as 5 nested for loops can get. I'm not too excited about the prospect of implementing actual raytracing and quadtrees at this late stage of the year so 25fps will have to do for the time being.
I'll discard with the name ShadowVox now as the joke is becoming slightly punitive (Yes, that just happened).