East-facing stairs break into the second type of plain stone brick, due to a glitch.
Some blocks hold a data value, to determine things like the hue of wool or the height of wheat. All stairs use a data value of 0-3 to determine which direction they face:
- 0: South
- 1: North
- 2: West
- 3: East
But stone brick uses this data value to determine type:
- 0: Normal
- 1: Mossy
- 2: Cracked
- Anything else: Not normally obtainable, will default to normal
When you smash a stone brick, it retains its data value, which is why smashing stairs creates different stone bricks. The type of brick corresponds to the direction of the stair it came from. Because there are four cardinal directions and only three types of brick defined, the fourth type of brick just looks like normal brick.
Because computers store numbers in limited precision.
With bigger numbers the precision gets worse and worse, because the numbers are stored something like 1.2345·10123 (but in binary... it's a long story).
Here, I try to decrease a big floating point number by different amounts. Notice how changing it by smaller amounts doesn't do anything.
>>> a = -360287969785042688.0
>>> a = a-1; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-5; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-10; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-15; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-20; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-25; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-30; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042752.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042816.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042880.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042944.000000'
Notice how the difference between numbers isn't actually 35. It is the smallest possible difference between two such huge numbers in binary floating-point representation.
The same happens in the game. Multiple times per second it tries to decrease your Y position by vertical speed, which is apparently less than this minimal difference between two neighboring numbers.
But if you teleport by a larger amount, you obviously can break that limit.
This is clearly outside the scope of this site. But there is plenty of information on floating-point numbers.
Best Answer
The ID for both of them is 98 (decimal), same as the normal Stone Brick. Like different color wool blocks, their appearance is decided by their damage value (981 for the Mossy Stone Brick, 982 for Cracked Stone Brick).
The Minecraft wiki has an updated list of data values.