Looks like a compiler bug... you can work around it by saving the values to intermediary enums:
enum Point3D!ubyte BlobSize = {x:32, y:32, z:32};
enum BlobX = BlobSize.x;
enum BlobY = BlobSize.y;
enum BlobZ = BlobSize.z;
blobcontents[BlobX][BlobY][BlobZ] data;