I still don't understand what's this problem for Layout. As I already said:
Can't you get the layout from the raw pointers since they need to be valid anyway?
A valid raw pointer allow you create a reference and use it to call Layout::for_value. Not to mention that there's an unstable Layout::for_value_raw