Okay, so you basically want a situation where you have to master class X and class Y to unlock class Z? Or do you mean you set yourself with a primary and secondary class a la FFXI, and this combination results in a third class being printed out? Either way, I'd think you'd be able to do this via scripts that have already been written, because you'd need the classes to gain EXP independently of the actor, meaning you'd either need to use an assload of actor slots to represent each character's class, or you'd need to use an AP system. Either one would be pretty difficult to do without using a script at all.
There's only one way I can really think of to do this without scripting, but it'd be pretty tough and time-consuming, and would probably work like the system in DQ3. I'm using a version of this in my project, except favoring a Seiken Densetsu 3 style of class change.
Anyway, what you want to do is create as many actors for each character as there are classes they can use. Each time you change class, the character has to unequip all items, and must be a certain level. You can vary the way that he changes (such as always starting at Lv 1 in that class or keeping the level, or keeping all, part, or none of the stats gained through being in the previous class). You conceivably could make it so you don't have to unequip, but then you'd have to create a separate version of each class for each actor using his/her own unique equipment, then read the equipment into variables before the class change, and change the new class's equipment to what was on beforehand. This method will make the class change about as simple as changing actors.
Now, the problems with this are that you'll start off an empty slate. You could partially alleviate this by having characters retain skills and part of their stats, making this about as close to DQ3 as possible. To retain stats, you'll have to read all six stats into variables beforehand (or however many you're using if you have a script to change the stats), divide each of those variables in half, then change the new class's initial stats to that. This might require a slight script change so that the player gains stats instead of having them set equal to the value given in the default stat system's matrix... I dunno, I forget exactly how stat gains work, but I'm pretty sure they set Stat X equal to Y rather than adding Y to stat X. I can't imagine it'd alter more than a few lines of code, though. To retain skills, you'll have to first read the current class's level, then teach EVERY skill the player has learned up until then to EVERY INSTANCE of that character. So, for example, if you have your Lv 24 White Mage change class and White Mages can learn 10 spells, and there's 16 total classes, you'll have to create 15 conditional branches, each checking if the White Mage instance of the character is at or above a level where he learns a spell, then teach that spell to the other 15 classes if so.
I only hope that I'm wrong about class changes not retaining skills, because this can be hella easier if they do. In such a case, you'd only need to create one of each actor, and just reset his level to 1 while retaining whatever percentage of stats he's gained to achieve the DQ3 style of class change.
Now, to gain access to advanced classes, it's not quite so difficult. In the event that allows you to change classes, have it read the actors' levels into a variable designated to certain classes. Only offer the secret classes if two of the variables have reached a certain level. For example, for your Paladin class, it'd only be offered if you reach Lv X as a Fighter and Lv Y as a Cleric. This'll be easier to pull off if class changes are done in a mastery style like Lufia: Ruins of Lore, where you speak to a different NPC for each class you want to switch to. If you don't want the player to know that the Paladin class is available, you can have some event prevent you from seeing the Paladin NPC unless at least one of your characters meets the requirements.
I'm sure I've made this a lot harder than it probably is, and someone could likely explain it better than me. But I tried.