RE: programing esc
As a rule of thumb, high pole count motors should have "high" timing, and this is any outrunner motor.
Low pole count motors should have low timing, this is the vast majority of inrunners, but not all of them.
Most ESCs have just "high" and "low" setting for timing, so a more precise answer is generally not needed.
Some seem to think that "high" timing is better for performance:
Thats no universal truth.
The universal truth is however that higher timing increases reactive power flow, and put simply, reactive power = heat loss.