I don't know how damage can overflow at 16.7M due to being a signed 32 bit integer, yet we have bosses with 100-200MHP (or probably way more in Anguish). Damage pobably just needs a variable type changed to 64 bit.
As I said before, it isn't the amount of damage, it is the way the formulas are implemented. Also, a 32-bit signed integer can hold +- 2.1 billion, not +- 16.7 million, more than enough for mob hit points.