When using class inheritance, can all PKs of the derived tables exist as PKs of the base table?
Your data model looks reasonable and normalized. If you are using the same paint_type repeatedly, you can break it out into a lookup table.
I don't understand the concern in your edit, so maybe you should explain that with more detail in a different question.