I think I found the cause. Turns out a fix only requires a simple TSC modification.
I did some digging through the Cave Story+ EXE, and found the code for triggering achievements. Each achievement is assigned an ID: the Normal Ending achievement ID is 50, the Mimiga Mask Ending is 52, and the Good Ending is 51. So I did some more digging, and found that CS+ added a TSC command for triggering achievements: 'ACH'. None of the achievements triggered by the game's code used ID 51, so that left only the TSC scripts. Looking in the script for the room 'Fall' (the cutscene where you're caught by Kazuma or Balrog), I found the following:
Code:
Let's go home.<NOD<CLO
<KEY<FAO0004<HMC
<ITJ0024:0101
<ACH0050<TRA0000:0100:0001:0015
#0101
<ACH0052<TRA0000:0100:0001:0015
As you can see, the Normal/Mimiga endings are properly unlocked. But, looking at the Good Ending...
Code:
<KEY<FAO0004<HMC<ITJ0032:0121<TRA0000:0100:0001:0015
#0121
<KEY<WAI0100<MSG<GIT1032
Aren't we forgetting something?<NOD<TRA0000:0100:0001:0015
...there's no such command. It seems like Nicalis just forgot to insert a '<ACH0051' before the 'TRA's.