Dasda just released his version of a PUP file unpacker, the un_pup 1.0. It's coded in C and licensed under the GNU GPL v3.
Just a small command-line application I hacked together, all it does is output information and properly extract Update Packages. I did this mainly because of my research, and this one can easily be compiled on almost any platform where GCC has been ported. It's released under GPLv3.
PS. I know the code is kinda dirty and I'm calling multiple functions twice, but it's good and it handles errors (except for the strcmp, sch!). Expect a cleaned up version later, version 1.1. ;-)
-- Dasda