It seems like it's not always 148 chars that can be truncated.
It seems like it

Combined with the fact that only a part of the
spending_witness data is the pubkey, and that the pubkey length itself can vary, I don't know how to proceed. If you can figure it out, I'll continue this, but I don't have the time to search for it myself now.