Excessive valve lash (or bent push rods) would rattle just as much at free rev as under load. Plus you would probably hear it at idle.
Verify timing marks and pointer as stated above.
Initial advance at 12 might be a bit much, especially if your running 87 octane.
Also, check vacuum advance operation, if it isn't working right you'll have too much advance when you press the throttle under load.
Is this a new engine or did you change anything just before the noise started?
If the engine was running fine and then starts pinging w/o changing ignition/timing, then it could be running lean (causes detonation). If so check fuel delivery to carb, read the plugs, etc. With the ethanol in todays gas, it doesn't take long before the moisture can accumulate in the carb and cause corrosion and mess up your mixture.