MLC NAND Flash page interleaving
Confirmed with another publication, it appears that the first and final wordlines are indeed special cases.  The second image has a typo, the final two wordlines should be WL30 and WL31.

With this in hand, the page layout under "all bit line" (ABL) page programming is defined:

// Given wordline n on [0, MAXN], page on [0, MAXPAGE]

LSB_Page(n) := 0 when n == 0
               else 2 * n - 1
MSB_Page(n) := 2 * n + 1 when n == MAXN - 1
               else 2 * n + 2


For ABL with even-odd interleaving as well:

// Given wordline n on [0, MAXN], page on [0, MAXPAGE]

Odd_LSB_Page(n)  := 1 when n == 0
                    else 3 + 4 * (n-1)
Odd_MSB_Page(n)  := MAXPAGE when n == MAXN
                    else 5 + 4 * n
Even_LSB_Page(n) := 0 when n == 0
                    else 2 + 4 * (n-1)
Even_MSB_Page(n) := MAXPAGE - 1 when n == MAXN
                    else 4 * (n+1)