As far as I have been able to understand the whole process works like this:
Load.exe - Game Loader
Game.exe - Game Executable
Load.exe is a standard loader for all games. The game name and executable are passed through the variables GAME and EXE. The gfx are taken from the omdata present in every game.
The registration is carried out only because the games are protected with a different armadillo project.
Once unpacked, the game has no problems, since the only variable that is checked is EXPIRED which is never set to true because of lacking of the armadillo shell. So it is fully functional (except for Candy Crisis which is older and integrates also username checking(but does not seems to need to be cracked once unpacked EXCEPT for Unregistrered/Registered to).
In the Loader, the checking part can be cracked(o return always registered) but variables GAME, EXE, SKU and maybe TYPE need to be there for the loader to work.
If not specified(FIRST 2) lead to a "Can't find game" because the loader does not know whith executable to run.
So it is not needed to dump armaccess.dll but it is needed to restore some of the variables.
As always, if this is wrong please correct me
EDIT: Just setting the TYPE to Purchased makes it registered