Well done. I'm glad it is working.
But please don't use pin 20 and 21, use those for the I2C bus.http://arduino.cc/en/reference/wire
Yours and my OLED display have the wrong labels.
'SCL' is actually the clock of a SPI interface.
'SDA' is actually the data of a SPI interface.
The labels are wrong, that is one of the reasons why it is so cheap
The 'D/C' and 'RST' labels are correct.
If you would use the hardware SPI bus of the Mega, you can increase the speed a little. But using software SPI on any pin is a lot easier and that is what you are using at the moment.http://arduino.cc/en/Main/arduinoBoardMega