Well, after some serious testing, I found an alternative for accomplishing this in vanilla. Not a super simple solution, but in case anyone is curious, here's what I did...
By summoning creepers with a riding armor stand with certain settings(making them invisible, invulnerable, markers), as well as super fast command block redstone clocks, I found I could detect the moment the armor stand ceases to be riding the creeper, which happens to occur right at the time of explosion(or VERY close). Creepers also have an explosion radius tag, which happens to not cause damage when set to 0. From there, I'm working out a way to summon a damage potion from the armor stand that damages only players using the /execute command! It should work well once I figure it out. I've already worked out how to summon a firework from the location, which happens basically instantaneously at the time of the creeper explosion.
Using a very similar method, I was able to detect when the creeper's health reached 0 using the armor stand, thus effectively targeting the location of a dead creeper. Since the death animation has to finish playing before the armor stand ceases to ride the creeper, I'm able to execute commands on the armor stand and destroy it, all before the death animation is complete. This means that I am able to distinguish death types of a creeper! Even make completely custom drops, or do anything I can think of within the realm of vanilla commands on the death of a creeper.
Happy crafting! Hope this helps someone.
[UPDATE]: Instead of a summoning a potion at the time of death, I instead targeted all non-player entities in a certain radius from the armor stand riding the creeper at the time of explosion and applied an ActiveEffects tag with resistance*5 for about one tick. I then summoned a primed creeper to explode during this split second of immunity using the Fuse:0 tag. It works well, as all of this happens within milliseconds using scoreboard dummy objectives and setblock/fill command block clocks.
No, they don't.
Minecraft does indeed simply take the highest of the neighbouring voxels and subtract one to calculate the lighting level (unless it's a source of light, than that blocks light level is simply the light sources light level).
Both ice and water reduce the light level by 3 total each step (1 for the normal decrease and 2 extra). Some technically transparent blocks (transparent because they're not full blocks as far as rendering is concerned) completely block light, namely slabs, stairs and farmland.
Cobwebs and leaves stop the special "light source" that is the sun from going further down, meaning that from that point on normal rules apply to the sunlight.
Best Answer
The idea is that you summon a FallingSand which rides on top of another entity.
The problem is, the sand is then floating on top of the entity, so it is not on ground directly.
If you use an ArmorStand, the offset is very high and it can not be affected by TNT / Creepers.
If you use an item, which is uncollectable, it works quite good:
When nearby explosions it will be affected, but as soon as it lands it will become solid.
Hope it helped :)