basically, stuff has not been documented well, as a lot of coders don't enjoy documenting stuff
if you, or someone else could do so, that would be a fantastic contribution to the xbmc project.
basically, the loading of the skin files can be looked into in guilib/guiwindow.cpp and guilib/guicontrolfactory.cpp
that is where the loading etc. is performed, so will give you all the info you need to know regarding which controls use which tags etc.
as for the actual media files, the fonts are simply placed in the font subdir of the skin folder (they can be .xpr or .ttf fonts).
the rest of the media files are placed in the media subdir. that will work fine. to increase performance, however, we convert the texture files to an xbox native format and compress it into a single file (textures.xpr) so that it loads much quicker. there is an application available (xbmctex.exe - needs building) in the tools subdir of the xbmc source.
for testing purposes, though, just dump the pngs etc. in the media subdir and xbmc will load them just fine.
i'm more than happy to help with any other questions you may have.
also, if you find things that you think would simplify/enhance the skinning process and/or the gui environment that you'd like implemented, let me know and we'll see what we can do.
cheers,
jonathan