I really don't want to embarrass him in front of a bunch of people.
This issue is far more important than a little embarrassment.
If a little embarrassment in public will get his attention, USE that. He's left you little other choice.
If the public notice of his mistakes is not enough to stop the behavior, then DO NOT shoot with him, and be sure those in that larger group understand the danger as well.
If you cannot change him, you can possibly influence the others, and very well may save one of their lives.
It takes some intestinal fortitude, but adopting the procedures of a more formal range or competition setting could really help you.
The moment he breaks a safety rule (or sooner if you can) deliver a LOUD "
STOP -- CEASE FIRE" command, such as will get everyone's attention. ANYONE on a firing line can call a cease fire because of a safety issue, and it is their responsibility to do so. If he's loading a gun or handling a loaded gun behind the line, and your STOP interrupts the shooting of the person on the line, fine. That gets multiple people involved and draws attention.
"Hey, man, why did you call cease fire?"
"Jimmy here was loading his weapon behind the line and pointing it at your back."
That should get EVERYONE's attention. That, by rights, should end Jimmy's day of shooting (as any gross safety violation would), but in an informal range setting probably wouldn't. But it will bring a lot more than your gentle nagging to bear.
If the group will not support your safety call, don't shoot with them either anymore. If that's the way the group dynamic operates, they are a roll of the dice away from a tragedy, and you don't need to witness it.