Athefre asked about how many corner orientation cases there would be.
Obviously, there are 2187 corner orientation cases. Of course, this can reduced to a much smaller set of "cases." Symmetry and setup moves can be used to greatly reduce the number of cases that someone needs to consider. The actual number of cases depends upon the symmetry group you use and what you are willing to use as setup moves. The simplest setup move case would be to allow U layer rotations to align the top and bottom layers differently.
Well, I wrote a little program to try to count the orientation cases. This is what I came up with. Numbers in parenthesis indicate the number of cases if you don't count mirrors as separate cases.
Using four cube orientations preserving U facing up, followed by an optional U setup move: 192 (114)
Using eight cube orientations leaving U facing up or down, followed by an optional U setup move: 100 (65)
Using all 24 cube orientations, but no setup move: 111 (66)
The above numbers include the all corners oriented position, so subtract one from each number if you don't consider that position to be a "case." Note that when cube orientations are used that move the U face to a side face, the orientation cases will look different.
I will also enumerate the different combinations of the numbers of corners with each twist state. It would seem that if you had an alg for one instance of each of these cases, you could use setup moves to convert any corner orientation case into the case for one of those algs. This would only require 14 algs, of which I believe 5 could be mirrors of other algs. This may require learning lots of "setup cases," though. I'll use triples giving the number of oriented cubies, clockwise-twisted cubies, and counter-clockwise-twisted cubies. These cases are:
(8,0,0), (6,1,1), (5,3,0), (5,0,3),
(4,2,2), (3,4,1), (3,1,4), (2,6,0),
(2,3,3), (2,0,6), (1,5,2), (1,2,5),
(0,7,1), (0,4,4), (0,1,7)
Anyway, I think it should be possible to orient all corners using a reasonable number of algs. One could also do corner orientation in two steps instead of one step. As Per said, you could also orient the corners as you move them to their proper locations, perhaps by using 3-cycles.
- Bruce