This update should improve performance again, the valid spawn position calculations get executed on demand instead of every frame. In addition, the bottom face of the overlay block was removed, which is one less quad (that you'd never see anyways) to draw per block!
Lastly, I've begun refactoring the code a little bit, which should make adding new features a little bit easier.