libpnd is a bunch of stuff; pndnotifyd is the daemon that watches for files ot move or directories to appear etc, and then creates/removes .desktop files in response. When you run a .desktop, the Exec line refers to a pnd_run.sh with various arguments to invoke the pnd-file. I've also build pnd_run (binary, not sh-script) which parses the PXML.xml and then invokes pnd_run.sh for you, so you cna run pnds directly without figuring out the pnd_run.sh arguments. That all said, pnd_run.sh includes command line arguments for mounting the pnd onto a dir of your choce, and late runmounting it. Normally an exrecute is mount, run, and unmount .. but you cna do it in stages if you like .. mount, inspect and futz with, and unmount.
As the ISO-part of the pnd is at the front, you can in fact open up a PND with an iso tool and get a peek (though if you save it, you'll probabyl lose the icon and appended PXML.xml, so best to use pnd-aware tools to do that and thus preserve that information.)
To override files, just drop them in the appdata and the app will just see them as if they're in the pnd-file, without needing to modify the pnd-file itself.
It is pretty awesome, if I do say so myself
Currently ISO and SquashFS is supported as the payload format, but we can support a long list of types pretty trivially .. its mostly a question of performance etc.
SquashFS and ISO are easy to make on pretty much all OSes, so should be very handy.
jeff