Since 1966 all school shootings were done by people under 21. Hmm. You can't buy a pistol until you are 21, because most handgun crime is also done by people under 21. Hasn't stopped them, but it can slow some down. Several of these school shootings were done by the 18 year olds buying their own guns. Would they cool off if they waited until 21? Maybe, but 85% of gun crime is with stolen guns.
Another thing to consider, bi-polar and schizophrenia both manifest in people in their late teens and early 20's. So raising the purchasing age to 21 might be the only compromise that doesn't ban guns.
I also think that if a teen is violent, abuses animals, etc., that record should not be expunged at 18, but should carry forward at 18 to put these troubled teens on the no gun buy list.
In Alabama, we cut our dropout rate in half by not allowing any teen the ability to get a drivers license if they are a dropout at least until they are 18. Most teens want their drivers license so they stay in school. Maybe not allowing high school drop outs to get a gun until they are 21 unless they graduate high school or get a GED. This may make the kids who don't think they can accomplish much, get a high school degrees which allows them to get slightly better jobs. Getting them to work and making money might take away their violent tendencies. Also getting rid of "free trade laws" and bringing back manufacturing that doesn't require high skills could get these guys better jobs. Textiles and shoe making only required about an 8th grade education, but paid at least twice minimum wage which gets a full time worker into the lower middle class. This can give a person who isn't very bright hope for a way to make a living.