I've been somewhat stuck trying to find cheaper springs for the 4.4 from my X5 that I'm rebuilding. I'm putting 4.6 cams in in it which have 1.5mm more lift than the 4.4 cams, so the 4.4 springs may cause valve float at higher RPM but the 4.6 springs, while still available from BMW, aren't cheap when multiplied by 32. Therefore I went down a rabbit hole evaluating S62 springs for the motor. The S62 cams have slightly less lift than the M62TUB46 pieces, but I was hopeful they would work since a member on Bimmerforums gave me a set of these springs used. Unfortunately the machine shop i took the heads to determined that they were too close to coil bind for comfort at full compression with the 4.6 cams. In for a penny....as they say. One set of new M62TUB46 springs have been dropped off at the machine shop so he can go ahead with the valve/head job and rebuild, and I can start assembling the bottom end.
I picked up the pistons from the shop and the 1.5 mm extra they took out of each valve relief look great and should ensure the motor doesn't turn into shrapnel, at least from piston/valve interference.

So I spent a few hours a day over the past 3 or 4 continuing to clean the carbon out of the piston ring groves. I had done an initial clean with Chem Dip before taking them to the machine shop, and I elected to stay with Chem Dip now, because I had it on hand and it cleans up very easily with water. No doubt it’s nasty stuff like diesel, carb cleaner, etc., but I didn’t need to use more nasty stuff to clean the pistons each time I dunked them.
All told it took 3 baths in the nasty stuff for all of them, with a couple taking a 4th swim. 4 hrs is the single-dip limit for aluminum parts, according to the can and I would limit the pistons to an hour or two each time. Three at a time fit in the basket and I’d make note of the order number as they went in. The chem dip would strip the sharpie number on top and often the paint pen number I put on the inside too.
what was left after the second dip:

and after the last (usually 4th) dip:

everyone in the pool:

The cutting edge of the tool I bought for the job (because I wasn’t smart enough to hang on to an old ring)

The tool was worthless when assembled, but the edge insert worked well after each dunk. Basically I’d put it in the groove with a bit of pressure and spin the piston against the beveled (cutting) edge on the tool insert.
They are free of carbon finally, but in truth they look like old pistons. Some wear on the skirt coatings and occasional very light surface scratches. They are getting used regardless as new pistons seem like a silly expense for a motor that isn’t going to be anything earth shattering. I have got to think they will seal better now than they did at 150k, with all that carbon under the rings and on the tops.
As mentioned, keeping them in order was a pain as the numbers dissolved in the chem dip, so I made sure to write down each time the order they were stacked in the can, and reapply a sharpie number on top as soon as the rinse water dried. There is a greater than zero chance that I mixed up pistons 8 and 6 though so we will see just how serious BMW is about keeping all the rods, pins and pistons together in their OE positions.

a spray with WD40 to help drive out any excess water and they are ready for the new rings and to be reunited with the rods - maybe tomorrow after I remind myself of the particulars of the job in TIS.