I think that the goal is still sort of ill-defined. Are the various instances going to be in abstractions or bpatchers? If so, pattr would work well without the coll part. Just expose the four numbers that you want to save to autopattr, and then make sure that the abstraction is exposed to autopattr at the top level.
That said, here's an edit of the original with coll that deals with what I think you want to do with the pack/unpack.