For now, this is functionally equivalent to the previous code. However,
it makes the future work to refactor how scroll roots and fixed layers
work a lot simpler and more efficiently.

It also has the side effect of being a neat optimization, since the
size of the primitive arrays are much smaller now!