Switch to sparse format for easier debugging

This is to make it obvious what will change as part of the state/set test. At the moment it's very difficult to see what changed, and what feature it is.