There exists an unofficial fix for making crystal glass, but it only works with the Win32 SDL version - open "Dwarf Fortress.exe" in a hex editor and change the following bytes:
0036AE87: Change "7C B8 32 00 00 00" to "78 0F BF 47 7C 90"
0036AE9B: Change "0F BF 4F 78 85 C9" to "B9 32 00 00 00 90"
I could probably produce a patch for the Win32 Legacy version as well, but I don't believe I'd be able to patch the Linux or Mac versions.
Out of curiosity, how does that patch work? Are you changing instructions or data or what?
The first line changes the instructions "mov dx,[edi+7c]" and "mov eax,00000032" to "mov dx,[edi+78]" and "movsx eax, word ptr [edi+7c]" (plus a "nop" to pad it out) so that it passes the correct parameters to the "load Material" function ([edi+78] is the material ID, [edi+7c] is the submaterial ID).
The second line changes the instructions "movsx ecx, word ptr [edi+78]" and "test ecx,ecx"* to "mov ecx,00000032" and "nop" so that it checks the proper material flag on the material it just loaded (flag #50 is CRYSTAL_GLASSABLE).
* I had to drop the "test ecx,ecx" to make room for the longer "mov" instruction, but it should still work unless the material pointer is somehow above 80000000h (which shouldn't happen since Dwarf Fortress was not compiled/linked with /LARGEADDRESSAWARE) - to be safer, the following bytes "78 2D" ("js (label)") can also be replaced with "90 90" (2x "nop") since we already know that ecx isn't negative.