1) I think this was already asked. (do a search)
2) You could create an event system using a parallel event / common event that tracks the players position, and generates apparently random battles accordingly. (ignoring, or extending the built-in areas & random battles)
3) The 'random battle' script could be re-written to use non-rectangular areas, or terrain type (or did this go away in VX?).
[ edit ] I just had an epiphany! If terrain is gone, you could use blank tiles from the last tileset, and have the algorithm check which specific tile is used for that map position to determine the terrain.
In which case, you should move this to Script Requests.
Be Well