I figured it out. There is indeed a problem.,
For now, you have a work-around:
Tools > Options > General > Importing & Tagging, set the following two options accordingly:
Sidecar tagging mode: Save in sidecar if internal tagging is not supported
Write to external sidecar files for media types: here you have four types - audio, video, data, image. Make sure Image is selected, along with any other types you choose.
Hmmm, strange things happening.
With the options set as you've indicated, I do not get a .xml sidecar file. Instead, it appears to be writing tags to the heic file itself. But, not all tags. It's putting in "Album" and "Person" Ok, but missing out "Places" (the file definitely has "Places" set in the library)!
I'm wondering if the lack of "Places" has anything to do with this page:
https://wiki.jriver.com/index.php/Photo_Tagging , which states "MC saves IPTC tags, except for Places, to any JPEG it tags.". Mediatcenter puts "Places" in MJMD tags in JPEGs.
Here's the accompanying log activity:
0030306: 18628: Database: CTagSaveInfo::SaveTag: Start
0030307: 18628: Database: CTagSaveInfo::SaveTag: Tagging D:\UserFiles\2025.03.28 08.09.26.heic
0030307: 18628: Import: JRAnalyzer::Open: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Filename: D:\UserFiles\2025.03.28 08.09.26.heic
0030307: 18628: Import: JRAnalyzer::AddFile: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Filename: D:\UserFiles\2025.03.28 08.09.26.heic
0030354: 18628: Import: JRAnalyzer::AddFileImage: Start
0030354: 18628: Import: JRAnalyzer::AddFileImage: Finish (0 ms)
0030354: 18628: Import: JRAnalyzer::AddFile: Finish (47 ms)
0030354: 18628: Import: JRAnalyzer::AddFile: Finish (47 ms)
0030354: 18628: Import: JRAnalyzer::Open: Finish (47 ms)
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description[1], prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description[1], val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title[1], prefix dc, val 2025.03.28 08.09.26
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title[1], val 2025.03.28 08.09.26
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights[1], prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights[1], val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event, prefix Iptc4xmpExt, val
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event, val
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event[1], prefix Iptc4xmpExt, val [Album Name]
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event[1], val [Album Name]
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event[1]/?xml:lang, prefix Iptc4xmpExt, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path PersonInImage, prefix Iptc4xmpExt, val
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag PersonInImage, val
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path PersonInImage[1], prefix Iptc4xmpExt, val [Persons Name Redacted]
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag PersonInImage[1], val [Persons Name Redacted]
0030475: 18628: Import: CXMP::Analyze: schema http://ns.adobe.com/photoshop/1.0/ path DateCreated, prefix photoshop, val 2025-03-28
0030475: 18628: Import: CXMP::ReadTag: schema http://ns.adobe.com/photoshop/1.0/ tag DateCreated, val 2025-03-28
0030475: 18628: Import: CXMP::ReadRegionsTag: Start
0030475: 18628: Import: CXMP::ReadRegionsTag: RegisterNamespace returned 1 actual prefix: mwg-rs:
0030475: 18628: Import: CXMP::ReadRegionsTag: Paths: Regions/mwg-rs:AppliedToDimensions
0030475: 18628: Import: CXMP::ReadRegionsTag: GetNamespaceURI returned 1 for stDim namespace, the URI is http://ns.adobe.com/xap/1.0/sType/Dimensions#
0030475: 18628: Import: CXMP::ReadRegionsTag: W=, H=, U=
0030475: 18628: Import: CXMP::ReadRegionsTag: Paths: Regions/mwg-rs:RegionList
0030475: 18628: Import: CXMP::ReadRegionsTag: Num of regions 0
0030475: 18628: Import: CXMP::ReadRegionsTag: GetNamespaceURI returned 0 for stArea namespace, the URI is
0030475: 18628: Import: CXMP::ReadRegionsTag: RegisterNamespace returned 1 for kXMP_NS_XMP_Area_JR namespace URI, the registered prefix is stArea:
0030475: 18628: Import: CXMP::ReadRegionsTag: Serialized
0030475: 18628: Import: CXMP::ReadRegionsTag: After reloading the serialized string is equal
0030476: 18628: Import: CXMP::ReadRegionsTag: Finish (0 ms)
0030476: 18628: Import: CXMP::Analyze: DumpObject
0030476: 18628: Import: CXMP::Analyze: Dumping XMPMeta object "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x0)
0030476: 18628: Import: CXMP::Analyze: dc:
0030476: 18628: Import: CXMP::Analyze: http://purl.org/dc/elements/1.1/
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 80000000
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: schema
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:description
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: isLangAlt
0030476: 18628: Import: CXMP::Analyze: isAlt
0030476: 18628: Import: CXMP::Analyze: isOrdered
0030476: 18628: Import: CXMP::Analyze: isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze: = "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: hasLang
0030476: 18628: Import: CXMP::Analyze: hasQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: ?
0030476: 18628: Import: CXMP::Analyze: xml:lang
0030476: 18628: Import: CXMP::Analyze: = "
0030476: 18628: Import: CXMP::Analyze: x-default
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 20
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: isQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:title
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: isLangAlt
0030476: 18628: Import: CXMP::Analyze: isAlt
0030476: 18628: Import: CXMP::Analyze: isOrdered
0030476: 18628: Import: CXMP::Analyze: isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze: = "
0030476: 18628: Import: CXMP::Analyze: 2025.03.28 08.09.26
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: hasLang
0030476: 18628: Import: CXMP::Analyze: hasQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: ?
0030476: 18628: Import: CXMP::Analyze: xml:lang
0030476: 18628: Import: CXMP::Analyze: = "
0030476: 18628: Import: CXMP::Analyze: x-default
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 20
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: isQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:rights
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze: :
0030476: 18628: Import: CXMP::Analyze: isLangAlt
0030476: 18628: Import: CXMP::Analyze: isAlt
0030476: 18628: Import: CXMP::Analyze: isOrdered
0030476: 18628: Import: CXMP::Analyze: isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze: = "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: hasLang
0030477: 18628: Import: CXMP::Analyze: hasQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: ?
0030477: 18628: Import: CXMP::Analyze: xml:lang
0030477: 18628: Import: CXMP::Analyze: = "
0030477: 18628: Import: CXMP::Analyze: x-default
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 20
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: isQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:
0030477: 18628: Import: CXMP::Analyze: http://iptc.org/std/Iptc4xmpExt/2008-02-29/
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 80000000
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: schema
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:Event
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 1E00
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: isLangAlt
0030477: 18628: Import: CXMP::Analyze: isAlt
0030477: 18628: Import: CXMP::Analyze: isOrdered
0030477: 18628: Import: CXMP::Analyze: isArray
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: [
0030477: 18628: Import: CXMP::Analyze: 1
0030477: 18628: Import: CXMP::Analyze: ]
0030477: 18628: Import: CXMP::Analyze: = "
0030477: 18628: Import: CXMP::Analyze: [Album Name]
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 50
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: hasLang
0030477: 18628: Import: CXMP::Analyze: hasQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: ?
0030477: 18628: Import: CXMP::Analyze: xml:lang
0030477: 18628: Import: CXMP::Analyze: = "
0030477: 18628: Import: CXMP::Analyze: x-default
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 20
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: isQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:PersonInImage
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 200
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: isArray
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: [
0030477: 18628: Import: CXMP::Analyze: 1
0030477: 18628: Import: CXMP::Analyze: ]
0030477: 18628: Import: CXMP::Analyze: = "
0030477: 18628: Import: CXMP::Analyze: [Persons Name Redacted]
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: photoshop:
0030477: 18628: Import: CXMP::Analyze: http://ns.adobe.com/photoshop/1.0/
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 80000000
0030477: 18628: Import: CXMP::Analyze: :
0030477: 18628: Import: CXMP::Analyze: schema
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: photoshop:DateCreated
0030477: 18628: Import: CXMP::Analyze: = "
0030477: 18628: Import: CXMP::Analyze: 2025-03-28
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::ReadTags: Start
0030477: 18628: Import: CXMP::ReadTags: description: , lang x-default
0030477: 18628: Import: CXMP::ReadTags: description: 1, , lang x-default
0030477: 18628: Import: CXMP::ReadTags: title: 2025.03.28 08.09.26, lang x-default
0030477: 18628: Import: CXMP::ReadTags: title: 1, 2025.03.28 08.09.26, lang x-default
0030477: 18628: Import: CXMP::ReadTags: rights: , lang x-default
0030477: 18628: Import: CXMP::ReadTags: rights: 1, , lang x-default
0030477: 18628: Import: CXMP::ReadTags: DateCreated: 2025-03-28
0030477: 18628: Import: CXMP::ReadTags: Finish (0 ms)
0030478: 18628: General: CXMP::SetXMPPropertyValue: Start
0030478: 18628: General: CXMP::SetXMPPropertyValue: value: 2025-03-28
0030478: 18628: General: CXMP::SetXMPPropertyValue: Finish (0 ms)
0030478: 18628: Import: CXMP::SaveRegionsTag: Start
0030478: 18628: Import: CXMP::SaveRegionsTag: RegisterNamespace returned 1 actual prefix: mwg-rs:
0030478: 18628: Import: CXMP::SaveRegionsTag: Finish (0 ms)
And looking at the actual content of the heic file, there's this tacked on to the end:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
<dc:description>
<rdf:Alt>
<rdf:li xml:lang="x-default"/>
</rdf:Alt>
</dc:description>
<dc:title>
<rdf:Alt>
<rdf:li xml:lang="x-default">2025.03.28 08.09.26</rdf:li>
</rdf:Alt>
</dc:title>
<dc:rights>
<rdf:Alt>
<rdf:li xml:lang="x-default"/>
</rdf:Alt>
</dc:rights>
<Iptc4xmpExt:Event>
<rdf:Alt>
<rdf:li xml:lang="x-default">[Album Name]</rdf:li>
</rdf:Alt>
</Iptc4xmpExt:Event>
<Iptc4xmpExt:PersonInImage>
<rdf:Bag>
<rdf:li>[Person's Name Redacted]</rdf:li>
</rdf:Bag>
</Iptc4xmpExt:PersonInImage>
<photoshop:DateCreated>2025-03-28</photoshop:DateCreated>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
It's interesting that the Album name is showing up in a field called "Event" in this xmpmeta data. That's a bit puzzling, because XMP stands for "Extensible Metadata Platform", meaning that any field imaginable could be added to it. But that's not (yet?) been exploited by Mediacenter.