It's very doable, though it would involve almost noting but assembly hacks.
- Skipping the difficulty-selection screen.
- Perma-locking "extra" from the title screen (or removing it, though that would involve more complicated modifications).
- Initializing the difficulty to "easy" on the title screen (ie, "Nothing")
- Altering the "new game" startup code to set the difficulty to "normal" (ie, "First loop") if on "easy", "lunatic" (ie, "Second loop") if on "normal", "extra" (ie, "TLS/TLB") if on "lunatic".
- Altering the end-of-stage code to call the "new game" startup code again when the current stage is 6.
You'd start a new game on "normal" automatically, restart on "lunatic" after completing stage 6, then play the extra stage after completing stage 6 a second time. Although IMO it would be more of a silly idea than a great one - that's quite a lot of playing just to get to the extra stage and fail, assuming you can even clear lunatic. Not to mention that extra stages are generally considered to be between hard and lunatic, so a full lunatic run would be pretty harsh conditions for unlocking the stage.

To be fair, code-wise, there are only about 2 "main" versions of the games' engine (EOSD-IN and MoF-DDC; not counting PoFV). Most of the games using one version often have large chunks of code from previous games handling things the two games have in common. However, offsets are never the same from one game to the next so there's still plenty of research to do with each of them to make the necessary changes. Your biggest issue would be tracking down the title screen-related code, as startup/end of stage code can be located pretty easily in all Windows games. The actual hacks themselves wouldn't involve more than basic x86 assembly know-how, on the other hand.
