Arduino MEGA PWM digital pins

I have not purchased the Arduino MEGA 2560 R3 yet.. just looking online at the specs..

and noticed in the pin mapping page for the 2560 Arduino MEGA: http://arduino.cc/en/Hacking/PinMapping2560 ..there are 18 PWM-pins: 0,1,2,3,4,5,6,7,8,9,10,11,12,16,17,51,52,53

but the overview page it says: "of which 14 can be used as PWM outputs" below on the spec page it says: "Digital I/O Pins - 54 (of which 15 provide PWM output)"

now which are the 14 or 15 you can actually use? --because in the photo image you see 12 digital pins that are at the top row, which is indicated as "PWM" : http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Front.jpg

also curious if you could change via code some of the other digital inputs to PWM or write a program routine that makes a "normal" digital output a PWM output -- possible? if it is how would the code look like?

The way I read the schematic, the hardware based PWM originates, from these pins which all have OCxA,OCxB, or OCxC associated with them:

1 PL3 2 PL4 3 PL5 4 PH3 5 PH4 6 PH5 7 PH6 8 PG5 9 PE3 10 PE4 11 PE5 12 PB4 13 PB5 14 PB6 15 PB7

Maybe some others do as well, but the eagle symbol does not show that. A perusal of the 2560 data sheet will tell you.

You can always do "software PWM", using up processor cycles. Write part of your loop to watch for elapsed microseconds, and change the state of an output pin when the time is correct.