I just had to do it, the box.js code needed to be majorly changed for lag induction and so this kinda just got changed too. A bounding box could be (and probably will be) created by many types of geometries, not just box, so it makes sense to have this outside of box.js. I use an array because they are fun, and at first I thought I could abstract out these nested loops, but then I got lazy and decided not to write it recursively.

And I think it's super simple and the old code was very complex :P