Mega has six bits, MUX5:0. These control pin/pins and single end vs differential input. See the ATmega640/1280/1281/2560/2561 datasheet.
The S/H problem is just one of many problems with analog input.
People have stumbled on the S/H problem for years and the Arduino Company hasn't provided a simple solution.
I didn't suggest modifying analogRead() since a whole redesign of the API is needed.
The dummy read trick appears in many forum posts but is not a clean solution.
I did a huge study of AVR ADC performance so I developed my own library but there is little to no chance of the Arduino Company adopting it.