> The preceding element will be the carpet block - its ``getBlock()`` method returns the carpet block, but the ``getTargetFace()`` and ``getTargetLocation()`` methods will return null, indicating that the player's line of sight did not in fact intersect the carpet's hit box - it passed over it.

That needs to be corrected. You are including the entire voxel (1 x 1 x 1) as calculated. You wouldn't give *null* for an ```AIR``` block, would you? If you want to indicate the actual bounded area occupied by the block was not intersected, even if though voxel was, you need to define a flag.