fval.c = block->data[bx.jx][bx.jy][bx.jz];
fval.m = block->data[bx.jx][bx.jym][bx.jz];
fval.m2 = block->data[bx.jx][bx.jy2m][bx.jz];
fval.m3 = block->data[bx.jx][bx.jy+3][bx.jz];
fval.m4 = block->data[bx.jx][bx.jy+4][bx.jz];
seems suspicious to me.
Is this a bug?
If so, #154 should fix it.