This code looks pretty scary, mostly because it adds hard to parse monster functions. Also as-is it seems totally pointless as no user of the change appears. In fact this series adds almost 500 lines of code without adding any code or speeding operations up (in fact I think it will cause minor slow downs). So to me it is a very hard sell.