You're doing an awesome Job!
I'm trying to program an ATmega162 using the Arduino IDE and the ArduinoISP, so I dont need the bootloader, but i'm having some problems that you had, for instance the problem of the missing definition of USART0_RX_vect.
Your solution is awesome, but I'd recommend to use another definition inside of Arduino.h or even in pins_arduino.h to avoid changes in iom162.h.
I made the following definitions:
#define USART0_RX_vect USART0_RXC_vect
#define USART1_RX_vect USART1_RXC_vect
#define USART0_TX_vect USART0_TXC_vect
#define USART1_TX_vect USART1_TXC_vect
Worked nicely to compile the affected files, like HardwareSerial.cpp.
Now I "just" need to be able to burn the generated code to the MCU. lol