Making bootloader for Atmega162

You probably need a new bootloader file to handle the differences internally in the processor. There are quite a few examples (eg. the Optiboot loader) which you could download and modify.

However you could explore other options...

First, do you really need 2 x 16-bit timers? Could one be pressed into service to do two things? Or could 8-bit resolution be enough? I did a sketch that output VGA signals using just a Uno, and timing had to be pretty precise.

Second, you don't need a bootloader. It just simplifies uploading things through the serial port, which the Uno has courtesy of the USB interface.

For example here:

This minimal board can be programmed using the ICSP header (labelled) using a device like the USBtinyISP, or indeed another Arduino Uno acting as a programmer.

The programming device is around $22, and can be shared between different projects.

You see, if you make up your own board, unless you muck around with a USB chip (itself likely to be surface mount) then you are going to need some sort of special cable anyway, like a FTDI cable, which also costs around $20. So you may as well go the ICSP programming route, and save worrying about the bootloader.