The .max file format is closed, and like Pandora's Box, it's better left unopened. If you have 3DSMax the best option is usually a maxscript to spit out raw data, and a C++ converter to read that data and create a binary format that can be read directly into the PSP.
If you're using a mix of different 3d packages which allow scripting (Blender, Maya, Max all do, I suppose XSI too), this is also the best option since most of the work optimizing the model geometry and setting up PSP vertex formats, etc. can be done inside that C++ converter.
.3DS format is old, but it has a robust enough design that it is still valid today. Your converter could read 3DS format too.
For texture conversion, Henrik's PTX converter http://www.dtek.chalmers.se/~tronic/PSPTexTool.zip works great (too bad it can't read TGA files).
Custom model viewer based off cube sdk sample - help
how not to use cache pointer
How can i not use the cache pointer?