Using a simple script to do this would be basically the only way. I have been experimenting using what I call "hacking" into other games. Basically, re-writing the Game_Map setup to load another game's maps and tileset data if a certain switch is on.
if $Extra_Maps == nil
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
else
$data_tilesets = load_data("#{$POOLAREA}/#{$Extra_Maps}/Data/Tilesets.rxdata")
@map = load_data(sprintf("#{$POOLAREA}/#{$Extra_Maps}/Data/Map%03d.rxdata", @map_id))
#!!!! Make script to load extra maps
end
It takes longer to load the map, but you can get into even encrypted games...
The $POOLAREA is where you'd place the name of the folder the extra maps are in. (Just ignore why it's called $POOLAREA, that's something else of mine) Also if you use any sort of Quick Passability, you will need to have that turned off whenever you are in the extra maps or it will cause problems. All of the transfer events will work perfectly normal on any of the add-on maps, because they retain their IDs.
You can do this with anything. Just change the global variable to something like $data_items and the respective file.
From what I've seen, the most $data_(whatever) can be easily altered (they're usually tables) . Just do a Filetest for the add on in a similar area and push the data to the end of the global variable.
Although this is scripting, (which you said you can't do), you can encrypt both files.