It looks like you know what your doing, but this still seems controversial!  I'm talking about updating the box2D header file at all!  It seems this should be "read-only" so a new box2D can be plopped into place.  Does this array math pay off?  And if so, is there another way without updating box2d?