Pre-requisites (based on tools I use):
-21mm deep wall impact socket (for wheel lug nut loosening/removal/re-installation) + a 3/8'' drill with 1/2'' socket adapter and/or with a 1/2'' dr torque wrench
-12mm socket 3/8'' drive (for brake line bracket on strut)
-17mm socket 1/2'' drive (for caliper bracket bolts to knuckle and ball joint bolts/nuts to Lower Control Arm) - a 3'' or 4'' extension comes in handy
-19mm crowfoot 3/8'' drive like
this set from HFT, with an adapter from 3/8'' dr to to 1/2'' dr (90ft-lbs calls for 1/2'' dr torque wrench)
NOTE: if you are using or planning to use aftermarket MOOG (bleh!) ball joints, then you will need a 25mm or 1-1/16'' combo wrench and crowfoot for torquing it down
-4'' extension 3/8'' drive (for 19mm crowfoot)
NOTE: for this job to work flawlessly you NEED a 1/2'' dr torque wrench being able to work in both forward and reverse direction!
-needle nose pointed pliers (for cotter pins)
-home repair hammer is handy for bending cotter pins legs or hammering on pliers to pull them out
-ball joint separator (with side arms like
this one from HFT)
NOTE: a Pitman Arm puller or Tie Rod End puller WILL NOT work here
-19mm combo wrench (open end for initial tightening/loosening of castle nut, box end will be handy for ball joint separator bolt)
-PB Blaster for rusted/seized bolts/nuts
-paper towels & rubbing alcohol (isopropyl alcohol) to clean things up from old spilled grease
-small wire brush to clean off the rust (optional)
-1/2'' breaker bar (totally optional, I used my 1/2'' click-stop torque wrench to loosen what I needed)
Click-stop torque wrenches used here were both from HFT:
3/8'' drive
1/2'' drive
gen4 Torque specs:
-caliper bracket bolts: 79ft-lbs
-brake hose bracket to strut: 22ft-lbs
-ball joint:
a) lower 17mm nuts/bolt: 94ft-lbs
b) 19mm OEM (or 25mm MOOG) castle nut: 90ft-lbs
-alloy wheels lug nuts: 77ft-lbs
-steel wheels lug nuts: 100ft-lbs
Steps:
1. Loosen the wheel lug nuts.
2. Jack up ONE corner of front end and secure it with a jack stand if possible.
YOU NEED TO LEAVE THE OTHER WHEEL ON THE GROUND! (learned it the hard way).
3. Remove the wheel on corner you are working on.
4. Unbolt the brake hose bracket 12mm bolt from the strut.
5. Unbolt the caliper with its bracket (2 17mm bolts) and pull it out of rotor. Once the brake hose is unbolted from the strut, you can rest the caliper on the ground (if car is raised low, but enough for wheels to be off the ground, using a 2t compact jack here).
6. slide out the rotor and rest it against the wall somewhere (do NOT put it flat on ground, to avoid collecting dirt and pieces of rocks!)
You should end up having something similar to this:
7. use pliers (and hammer on it if necessary) to bend and remove the old cotter pins from the old ball joint castle nut.
8. loosen the 19mm (OEM) / 25mm (MOOG in picture, used actually a 1-1/16'' combo wrench to loosen it) castle nut so it spins freely. Loosen it until it touches the dust shield deflector ring right above it.
NOTE: you NEED the other wheel to touch the ground now! it won't work if you raised the whole front axle up (things will just start turning on both sides).
9. remove 2 nuts and 1 bolt (all 17mm) on the bottom of ball joint.
10. Pry down on the LCA until you are able to slide the bottom of ball joint out of holes and put it UNDER the LCA (you may need to turn ball joint body to sides to achieve that, I had to, it should turn to sides easily), like this (pic taken before swinging the ball joint bracket under the LCA):

Note: the scissor jack supporting the spindle is totally optional and actually unneeded as the knuckle is still bolted to the strut, nothing is coming apart so skip that.
11. Use the ball joint separator like in picture to lock it on the castle nut (loosened) and right below the steering knuckle arm, tighten the 19mm bolt until you hear a LOUD POP which will create a noise ringing in your ears for 5 seconds

- that means the ball joint has popped out from the knuckle
SPECIAL THANKS TO PMESFUN ON BRILLIANT SUGGESTION ON HOW TO DO THIS!
12. remove the castle nut pulling the ball joint down at same time, eventually it will come off and you should be able to swing the old ball joint out:
FR side:
FL side reference pic:
13. clean things a bit with paper towels and/or alcohol and wire brushes (rust).
14. insert the new ball joint and catch it with the new castle nut until snug.
15. pry down on the LCA to insert (may need to turn the ball joint body to sides) the new ball joint into the LCA holes, once there, tighten them ALL to specs (17mm nuts+bolt all at 94ft-lbs)
16. tighten the BJ castle nut to specs using 19mm combo wrench and eventually the 19mm crowfoot on the extension and torque wrench (NOTE: access it from bottom and the front bumper side, accessing from top or the other side will NOT work unless you have the swivel extensions, I don't)

When tightening the new castle nut to specs with a crowfoot, extension and a torque wrench, generally you need to put it from the bottom (torque wrench on reverse setting), and on the front bumper side and it will work fine.
here is an example video how to do this:
17. once the new castle nut has been tightened to 90ft-lbs you may notice that the cotter pin holes are NOT aligned anymore. That's OK! The torque is needed to insert the cone shaped ball stud into the steering knuckle hole, not to hold it down. You can loosen the nut now, e.g. with a 19mm open end wrench until holes get aligned, insert the cotter pins and lock it. Then tighten the castle nut until snug (doesn't need to be 90ft-lbs anymore, nothing is going anywhere anyways).
*
official guides say that the cotter pin should be inserted ONLY if holes are lined up at or above the OEM specs.
I did it this way for the castle nuts on outer tie rod ends (was initially ending up half way between slots when using OEM torque, not always though and only on old tie rods, new ones lined up instantly), but the ball joints castle nuts lined up "almost" (literally 0.5mm past the ideal slot position after 90ft-lbs was applied, could be that precision of my 1/2'' dr torque wrench was coming into play here), tried tightening more to the next slot, but it was impossible to do with my setup, it called for waaaay more torque than 3/8'' crowfoot or extension/adapter could handle before breaking apart, so I did it my way (loosen the nut to insert the pin, then tighten it to snug).
Another explanation could be that 90ft-lbs has already seated the stud fully into the taper and there was no way to tighten the castle nut more (and pull the stud higher at same time), because it was already fully seated. Consider this if you come across the same trouble.
PIC of new FR side OEM ball joint installed:
PIC of new FL side OEM ball joint installed:
18. Re-install rest of stuff in reverse order and ENJOY YOUR NEW BALL JOINTS installed with no hassle of steering knuckle removal and using a bench vice and/or replacing the deflector dust shield (old one may get broken this way)!
19. Test drive the car and Have a cold one later
Reference pic of an old ball joint (driver side, 6-month old Moog ball joint in pic):