Although, how exactly does this work? I mean, what model structure should I use?
Should I include wheel model into the car model like it is in the GT2 Car Viewer?
...
And also, why exactly is it limited to 255 vertices and how does that work? I mean, the original models include 3 lods in one file, even trough highest lod can use all 255 vertices available...
...
I never encoutered anything like 16 colors per face, can you go into a bit more detail about that? How can I setup my PSD file to work with theese limitations? How many colours can a texture have at all? Does this mean that every single polygon must have no more than 16 colors or am I getting something wrong?
The game generates the wheel model, it's not part of the game model itself. GT2CarViewer does a lot of work to mock things up rather than showing the data how it really is.
The model is limited to 255 vertices because the vertex count is stored in a single byte. Each LOD is an independent model in the same container, so you can use all 255 on the first LOD without 'running out' for the other LODs - see the Calibra DTM for an example of pushing the limit.
The textures in GT1 and GT2 are 16-colour bitmaps. The CDP file format includes the bitmap data, plus up to 16 16-colour palettes. The first palette is always used for the wheels, the last two are the brake lights by convention. Each face of the model includes the ID of which palette it should apply to the texture. This does indeed mean that each face can only use 16 colours, as it can only apply one of the palettes, and in reality those 16 colours are shared across whole areas of the car else you'd run out of palettes very quickly.
GT2CarViewer again mocks things up when it comes to textures, and creates a 256-colour texture with all of the palettes merged into one where it thinks they should be used. Using GT2TextureEditor to extract the data from a car texture would give a better idea of how it fits together - GT2CarViewer is purely dumping things in the nicest way to view, and exports in formats that would be impossible to re-import.