Turns out item descriptions are a simple range check and subtraction. The reason the "Caller's Magic Orb" description isn't shown? They test if the item value is less than $E7, not $EB.
$01/A7BA C9 CE CMP #$CE A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7BC 90 2B BCC $2B [$A7E9] A:03CE X:0000 Y:D8E8 P:envMxdIZC
$01/A7BE C9 E7 CMP #$E7 A:03CE X:0000 Y:D8E8 P:envMxdIZC
$01/A7C0 B0 27 BCS $27 [$A7E9] A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7C2 38 SEC A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7C3 E9 CE SBC #$CE A:03CE X:0000 Y:D8E8 P:eNvMxdIzC
$01/A7C5 20 B4 87 JSR $87B4 [$01:87B4] A:0300 X:0000 Y:D8E8 P:envMxdIZC
$01/A7C8 BF 00 AE 0F LDA $0FAE00,x[$0F:AE00] A:0300 X:0000 Y:D8E8 P:envMxdIZC
$01/A7CC 85 45 STA $45 [$00:0145] A:0301 X:0000 Y:D8E8 P:envMxdIzC
$01/A7CE A2 2A AE LDX #$AE2A A:0301 X:0000 Y:D8E8 P:envMxdIzC
$01/A7D1 F0 0C BEQ $0C [$A7DF] A:0301 X:AE2A Y:D8E8 P:eNvMxdIzC
$01/A7D3 E8 INX A:0301 X:AE2A Y:D8E8 P:eNvMxdIzC
$01/A7D4 BF 00 00 0F LDA $0F0000,x[$0F:AE2B] A:0301 X:AE2B Y:D8E8 P:eNvMxdIzC
$01/A7D8 D0 F7 BNE $F7 [$A7D1] A:0345 X:AE2B Y:D8E8 P:envMxdIzC
$01/A7DA C6 45 DEC $45 [$00:0145] A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DC D0 F3 BNE $F3 [$A7D1] A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DE E8 INX A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DF 9B TXY A:0300 X:AE2D Y:D8E8 P:eNvMxdIzC
$01/A7E0 A9 0F LDA #$0F A:0300 X:AE2D Y:AE2D P:eNvMxdIzC
$01/A7E2 A2 54 00 LDX #$0054 A:030F X:AE2D Y:AE2D P:envMxdIzC
$01/A7E5 20 E4 82 JSR $82E4 [$01:82E4] A:030F X:0054 Y:AE2D P:envMxdIzC
$01/A7BA C9 CE CMP #$CEItem value to start showing descriptions for.
$01/A7BE C9 E7 CMP #$E7Item to stop showing descriptions for.
$01/A7C2 38 SEC
$01/A7C3 E9 CE SBC #$CESubtracts $CE from the item value. Change this to be the same as your starting item.
$01/A7C8 BF 00 AE 0F LDA $0FAE00,xItem description assignment table offset. (SNES LoROM Slow ROM) One byte per item.
$01/A7CE A2 2A AE LDX #$AE2AStart of item descriptions in bank - 1. Each description is terminated with $00.
$01/A7D4 BF 00 00 0F LDA $0F0000,xBank to load the item descriptions from.
So yeah, simple stuff, explains how J2e was able to give everything descriptions in their translation. I always assumed it would be more involved. They still did more work on top of that (their description hack uses a pointer table and supports using positioning on the string. This supports it too, but $00 will cause the string to terminate, which isn't an issue in J2e's hack.)