So I've been thinking about CP tracking. Instead of tracking the generators + the two pieces to be swapped, I'm thinking that instead you can track the the location of the sticker that belongs at BDL + the two pieces to be swapped. That lone sticker tells you where the generators are and where the F face is with respect to the generators. So now, for any given move, if it's R U L D with respect to the generators you just track how the two swap pieces + the lone sticker move as normal (since the normal movement of the lone sticker due to L or D moves will account for a rotation of the generators), and then if it's an F or B move (which you can easily tell since those face turns will be the only ones parallel to the sticker, if you get what i mean) then you use a memorized table of transformations to figure out how the key swap changes.