Arduino Pinout reassignment

The way I handled this is to create a schematic symbol for the processor in Cadsoft Eagle and used text on the pins in the symbol which shows the function of each pin - e.g. for the mega processor chip pin 1 is labeled (OC0B)PG5[D4], chip pin 2 is labled (RXD0/PCIN8)PE0[D0] etc. giving the function(s), Port and bit, and Digital (or analog) pin used in the software.

In the software I define each pin with a MEANINGFUL name -

#define UP_BUTTON 6
etc

Makes it easy to do the layout and get the pins straight in the software (and change them when necessary)