Subsystem restructuring. Please avoid merging stuff which would conflict with this. This took days to update.

some recent merges were lost due to entire conflicting files. I did ask nicely.
stop with the 'more descriptive' bullshit already. I heard you the first time. I'm using the same variable name for all of them because NONE OF THEM ARE TYPECASTED.