Here is an abstraction to help you compile a list out of multiple elements. Unlike [pack], you collect the messages via [send] rather than inlets, and they can be of any type or length.
Even if it doesn't prove useful, this should be interesting to other dynamic patchers. The abstraction creates itself recursively to access the creation arguments one by one, and then deletes the instructions used to create it, leaving you with just a bunch of [receive]'s and [list append]'s.
There are other ways of compiling lists dynamically, but I challenge anyone to do it with less than 23 objects!
Unfortunately you can't use $0's in the send messages. (The patch could be modified so that they'd work, but this would make it more complicated). Requires the iemguts library.