Looks like another big improvement. I ran it on a slow machine, and got 221/300 on WAC at 5 seconds:
Test #300 : White to play
Current Position
----------------
b . . b . r . k
. . . R . p p p pP=Pawn
. . . . q P . . rR=Rook
. . . . p . P Q nN=Knight lower=Black
. . . . P . . . bB=Bishop CAPS=White
. . . . . B . . qQ=Queen
. . . . N . K . kK=King
. . . . . . . .
Thinking 2 345 30 1727 g5g6 h7h6
3 160 130 5202 g5g6 h7h6 f6g7
4 160 531 38272 g5g6 h7h6 f6g7 h8g7
5 160 2023 87452 g5g6 h7h6 f6g7 h8g7 d7f7
6 148 5017 342561 g5g6 h7h6 f6g7 h8g7 d7f7 f8f7
---Answer: g6 **-Correct-**
Correct So Far: 221[61]/300
Result: 221[61]/300 (73%)[20%]
I will run it on a fast machine later tonight, when the machine isn't wasting so much time doing 'actual work'

I would like to comment that your centipawn evaluation numbers for checkmates are not correct.
For instance, here are some samples:
2rr3k/pp3pp1/1nnqbN1p/3pN3/2pP4/2P3Q1/PPB4P/R4RK1 w - - acd 0; acn 1547; acs 0; bm Qg6; ce 49999824; pv; c0 "**-Correct-**";
r1bq2rk/pp3pbp/2p1p1pQ/7P/3P4/2PB1N2/PP3PPR/2KR4 w - - acd 0; acn 87; acs 0; bm Qxh7+; ce 50000064; pv; c0 "**-Correct-**";
5k2/6pp/p1qN4/1p1p4/3P4/2PKP2Q/PP3r2/3R4 b - - acd 0; acn 253; acs 0; bm Qc4+; ce 49999607; pv; c0 "**-Correct-**";
3q1rk1/p4pp1/2pb3p/3p4/6Pr/1PNQ4/P1PB1PP1/4RRK1 b - - acd 1; acn 5575; acs 0; bm Bh2+; ce 49999651; pv h4xg4 a2a4; c0 "**-Correct-**";
r2rb1k1/pp1q1p1p/2n1p1p1/2bp4/5P2/PP1BPR1Q/1BPN2PP/R5K1 w - - acd 4; acn 321; acs 0; bm Qxh7+; ce 50000053; pv h3xh7+ g8f8 b2f6 c5xe3+ f3xe3; c0 "**-Correct-**";
This one is pretty bizarre:
7k/p7/1R5K/6r1/6p1/6P1/8/8 w - - acd 11; acn 77588; acs 0; bm Rb7; ce 10806; pv b6b7 g5b5 b7xb5 h8g8 b5f5 a7a5 f5f4 a5a4 f4xa4 g8f7 a4xg4; c0 "**-Correct-**";
I can't figure out what that centipawn evaluation might mean.
Here is what the PGN standard says:
16.2.5.6: Opcode "ce": centipawn evaluation
The opcode "ce" indicates the evaluation of the indicated position in centipawn
units. It takes a single operand, an optionally signed integer that gives an
evaluation of the position from the viewpoint of the active player; i.e., the
player with the move. Positive values indicate a position favorable to the
moving player while negative values indicate a position favorable to the
passive player; i.e., the player without the move. A centipawn evaluation
value close to zero indicates a neutral positional evaluation.
Values are restricted to integers that are equal to or greater than -32767 and
are less than or equal to 32766.
A value greater than 32000 indicates the availability of a forced mate to the
active player. The number of plies until mate is given by subtracting the
evaluation from the value 32767. Thus, a winning mate in N fullmoves is a mate
in ((2 * N) - 1) halfmoves (or ply) and has a corresponding centipawn
evaluation of (32767 - ((2 * N) - 1)). For example, a mate on the move (mate
in one) has a centipawn evaluation of 32766 while a mate in five has a
centipawn evaluation of 32758.
A value less than -32000 indicates the availability of a forced mate to the
passive player. The number of plies until mate is given by subtracting the
evaluation from the value -32767 and then negating the result. Thus, a losing
mate in N fullmoves is a mate in (2 * N) halfmoves (or ply) and has a
corresponding centipawn evaluation of (-32767 + (2 * N)). For example, a mate
after the move (losing mate in one) has a centipawn evaluation of -32765 while
a losing mate in five has a centipawn evaluation of -32757.
A value of -32767 indicates an illegal position. A stalemate position has a
centipawn evaluation of zero as does a position drawn due to insufficient
mating material. Any other position known to be a certain forced draw also has
a centipawn evaluation of zero.
My FTP site