I probably could have finished the overhaul today, except I thought of a way better way of doing it partway through, which required me to go back and redo a lot of my work, and I really am my own worst enemy.
Okay, so the new structure is that the entity template stores the default parameters: Any attempt to access the entity parameters will hand over the default, UNLESS the parameter is overridden. Each entity stores its overridden parameters, and they will be automatically saved with the entity, and will take precedence over the defaults any time you try to access the entity parameters. This means that I never need to initialize specific entity parameters at all UNLESS it’s to override the default values which I specified elsewhere.
This is probably the optimal solution. I’m streamlining the entity/behavior system a LOT with all of this — the only drawback being that now at the top of each behavior I need to specify a whole bunch of getters and setters. There’s probably a way to simplify all of that with macros, but I found Haxe macros completely impenetrable on first glance and am discouraged from exploring further at the moment. On the other hand, the macro thing not panning out probably lead to the more elegant system I have now, so I won’t complain too much.