Some of my thoughts: I took a quick skim through the code... and I noticed how many "#ifdef HEAT_ENABLE"'s that there are. Personally I think you should drop "Legacy mode" as it adds lots of clutter.
I think you should add a gravity toggle, it should be easy to implement.