For each 4x4x4 you basically have a fixed 2x2x2 block; the difference is that for one 4x4x4 it can be in any orientation, whereas for the other one it only has one possible orientation, so we want to take 3 times the number of positions where we just fix the block for each cube. (It's okay to do this because there are no positions which look the same when rotated along that axis.) You can also look at this as fixing the block's position but allowing one corner to be freely rotated (since that can be 'canceled out' by 'twisting' the block).
So the corners are (7!*3^6)^2, edges are (21!)^2, and centers are (21!/(3!^3*4!^3))^2, and we multiply by 3, for a total of
7!^2*3^13*21!^4*3!^(-6)*4!^(-6) = 3.09483912 x 10^79.
Note that the number of positions is complicated a bit if you're dealing with a siamese 4x4 where the same corner from each cube is missing, but I doubt that's the case because most siamese 4x4s have a consistent color scheme.